Skip to content

Zilliqa - #18

Closed
frankmeds wants to merge 14 commits into
mcpdotdirect:mainfrom
frankmeds:zilliqa
Closed

Zilliqa#18
frankmeds wants to merge 14 commits into
mcpdotdirect:mainfrom
frankmeds:zilliqa

Conversation

@frankmeds

@frankmeds frankmeds commented Sep 8, 2025

Copy link
Copy Markdown

Summary by CodeRabbit

  • New Features
    • Added Zilliqa mainnet/testnet support.
    • New tools: Zilliqa address converter and testnet faucet requester.
    • Introduced health endpoint and stateless MCP HTTP endpoint at /mcp.
  • Changes
    • Default server port changed to 3000.
    • Removed SSE and /messages endpoints.
  • Documentation
    • Updated examples and config to use port 3000.
  • Chores
    • Added Docker image with healthcheck and Makefile workflows.
    • Introduced CI/CD pipeline and Kubernetes manifests for staging/production.

@coderabbitai

coderabbitai Bot commented Sep 8, 2025

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

Walkthrough

Adds staging CI/CD workflow, Dockerfile and Makefile, Kubernetes base and overlay manifests, updates default port to 3000, introduces Zilliqa network support and utilities, adjusts client typing, adds Zilliqa address conversion and faucet tools, and refactors HTTP server from SSE to stateless Streamable HTTP with /mcp and /health endpoints.

Changes

Cohort / File(s) Summary
CI/CD workflow
.github/workflows/cicd-stg.yaml
New GitHub Actions pipeline to build and optionally push Docker images for main/zilliqa branches with GCP auth and cache.
Containerization & local DX
Dockerfile, Makefile
Multi-stage Bun-based image with healthcheck on port 3000; non-root user. Makefile adds build/run/clean/dev/prod workflows and health checks.
K8s base manifests
cd/base/namespace.yaml, cd/base/configmap.yaml, cd/base/deployment.yaml, cd/base/service.yaml, cd/base/httproute.yaml, cd/base/healthcheckpolicy.yaml, cd/base/kustomization.yaml
Namespace, ConfigMap (NODE_ENV/PORT/HOST), Deployment (1 replica, port 3000, mem resources), Service (ClusterIP 3000), HTTPRoute to gateway, HealthCheckPolicy, and Kustomization wiring.
Kustomize overlays
cd/overlays/staging/kustomization.yaml, cd/overlays/production/kustomization.yaml
Environment-specific namespaces and HTTPRoute patches for hostnames and gateway refs (stg/prd).
Docs
README.md
Update example URLs and default port from 3001 to 3000.
Dependencies
package.json
Bump @modelcontextprotocol/sdk to ^1.17.4; add @zilliqa-js/crypto ^3.5.0.
Chains and client typing
src/core/chains.ts, src/core/services/clients.ts
Add Zilliqa mainnet/testnet chainIds, names, RPC URLs; allow numeric or string network param in getPublicClient.
Service exports & Zilliqa helpers
src/core/services/index.ts, src/core/services/zilliqa.ts
Namespace export for zilliqa services; new zilToHex and hexToZil address converters with validation.
Tools
src/core/tools.ts
New tools: convert_zilliqa_address (bech32↔hex) and request_zilliqa_faucet (testnet faucet), with validation and structured responses.
HTTP server refactor
src/server/http-server.ts
Replace SSE with StreamableHTTPServerTransport; new stateless POST /mcp; add GET /health; remove /sse and old /messages; switch port to 3000; express.json middleware; graceful shutdown updates.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant C as Client
  participant H as HTTP Server (Express)
  participant T as StreamableHTTPServerTransport
  participant S as MCP Server

  Note over H,T: Stateless JSON over HTTP
  C->>H: POST /mcp { json-rpc request }
  H->>T: handleRequest(req, res, body)
  T->>S: invoke MCP request
  S-->>T: result / error
  T-->>H: JSON response (200/4xx)
  H-->>C: Response
  Note over H: GET /health returns status
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • wayzeek

Poem

I hop to port three-thousand’s beat,
New routes a-stream, no SSE to greet.
ZIL to hex, then back again—
Faucets splash in testnet rain.
Pods hum softly, gateways sing,
CI builds on whisker-wing. 🐇🚀


📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b6d923b and d308481.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (20)
  • .github/workflows/cicd-stg.yaml (1 hunks)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • README.md (2 hunks)
  • cd/base/configmap.yaml (1 hunks)
  • cd/base/deployment.yaml (1 hunks)
  • cd/base/healthcheckpolicy.yaml (1 hunks)
  • cd/base/httproute.yaml (1 hunks)
  • cd/base/kustomization.yaml (1 hunks)
  • cd/base/namespace.yaml (1 hunks)
  • cd/base/service.yaml (1 hunks)
  • cd/overlays/production/kustomization.yaml (1 hunks)
  • cd/overlays/staging/kustomization.yaml (1 hunks)
  • package.json (1 hunks)
  • src/core/chains.ts (8 hunks)
  • src/core/services/clients.ts (1 hunks)
  • src/core/services/index.ts (1 hunks)
  • src/core/services/zilliqa.ts (1 hunks)
  • src/core/tools.ts (1 hunks)
  • src/server/http-server.ts (2 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@frankmeds frankmeds closed this Sep 8, 2025
@frankmeds
frankmeds deleted the zilliqa branch September 8, 2025 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants